package com.qf.front.Interceptors;

import com.qf.ym.anno.AuthCheckAnno;
import org.springframework.web.method.HandlerMethod;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;


public class Interceptors implements HandlerInterceptor {
    @Override
    public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object handler) throws Exception {
        if(handler instanceof HandlerMethod){
            HandlerMethod hm=(HandlerMethod)handler;
            if(hm.hasMethodAnnotation(AuthCheckAnno.class)){//方法上存在注解，则放行
                Object user = httpServletRequest.getSession().getAttribute("user");
                if(user==null){
                    httpServletResponse.sendRedirect("login.jsp");
                    return false;

                }
            }
        }

        return true;
    }

    @Override
    public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {

    }

    @Override
    public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {

    }
}
